package com.atguigu.gmall.product.service;

import com.atguigu.gmall.model.product.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.stereotype.Service;

import java.util.List;


public interface ManageService {
    //查询一级所有分类数据111
    List<BaseCategory1> getCategory1();

    //查询所有二级分类数据
    List<BaseCategory2> getCategory2(Long category1Id );

    //查询所有三级分类数据
    List<BaseCategory3> getCategory3(Long category2Id);

    //根据分类id获取平台属性
    List<BaseAttrInfo> getAttrInfoList(Long category3Id, Long category2Id, Long category1Id);

    //保存平台属性
    void saveAttrInfo(BaseAttrInfo baseAttrInfo);

    //根据平台属性id获取平台属性值     (回显数据)
    List<BaseAttrValue> getAttrValueList(Long attrId);

    /**
     * 根据平台属性Id 来获取平台属性对象
     * @param attrId
     * @return
     */
    BaseAttrInfo getBaseAttrInfo(Long attrId);

    //获取分页属性数据
    IPage getSpuInfoPage(IPage iPage, SpuInfo spuInfo);



    /*-------------------------------------------*/
    //根据商品信息 获取商品属性spu
    List<BaseSaleAttr> getBaseSaleAttrList();

    //保存商品属性spu
    void saveSpuInfo(SpuInfo spuInfo);

    //获取图片列表
    List<SpuImage> getSpuImageList(Long spuId);

    //保存销售结果集
    List<SpuSaleAttr> getSpuSaleAttrList(Long spuId);

    /**
     * 保存skuInfo
     * @param skuInfo
     */
    void saveSkuInfo(SkuInfo skuInfo);

    //获取sku列表
    IPage getList(Page<SkuInfo> skuInfoPage);

    /**
     * 上架
     * @param skuId
     */
    void onSale(Long skuId);

    /**
     * 下架
     * @param skuId
     */
    void cancelSale(Long skuId);

}
